স্প্রিং ফ্রেমওয়ার্ক এবং স্প্রিং বুটের মধ্যে JDBC কনফিগারেশনের পদ্ধতি কিছুটা ভিন্ন হলেও উভয় পদ্ধতি ডেটাবেস অ্যাক্সেসকে সহজ এবং কার্যকর করে তোলে। নিচে Spring Framework এবং Spring Boot ব্যবহার করে JDBC কনফিগারেশন করার প্রক্রিয়া আলাদা আলাদা ভাবে দেখানো হয়েছে।
Spring Framework ব্যবহার করার জন্য প্রয়োজনীয় spring-jdbc
এবং ড্রাইভার ডিপেন্ডেন্সি যোগ করতে হবে।
Maven:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.x.x</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.x.x</version>
</dependency>
XML Configuration:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- DataSource Bean -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>
<!-- JdbcTemplate Bean -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
Java Configuration:
@Configuration
public class AppConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");
return dataSource;
}
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
DAO ক্লাসে JdbcTemplate
ব্যবহার করে ডেটাবেস অপারেশনগুলি ইমপ্লিমেন্ট করুন।
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<User> getAllUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
public int saveUser(User user) {
String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";
return jdbcTemplate.update(sql, user.getId(), user.getName(), user.getEmail());
}
}
Spring Boot ব্যবহার করলে শুধুমাত্র spring-boot-starter-jdbc
এবং ড্রাইভার ডিপেন্ডেন্সি যোগ করতে হবে।
Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
Spring Boot স্বয়ংক্রিয়ভাবে DataSource
এবং JdbcTemplate
কনফিগার করে দেয়। application.properties
ফাইলে ডেটাবেসের কনফিগারেশন উল্লেখ করতে হবে।
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
অথবা YAML ফাইল ব্যবহার করলে:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
Spring Boot স্বয়ংক্রিয়ভাবে JdbcTemplate
কনফিগার করে দেয়। আপনি সরাসরি এটি ব্যবহার করতে পারেন।
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public List<User> getAllUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
}
public int saveUser(User user) {
String sql = "INSERT INTO users (id, name, email) VALUES (?, ?, ?)";
return jdbcTemplate.update(sql, user.getId(), user.getName(), user.getEmail());
}
}
ফিচার | Spring Framework | Spring Boot |
---|---|---|
কনফিগারেশন | ম্যানুয়ালভাবে DataSource এবং JdbcTemplate তৈরি করতে হয়। | অটো কনফিগারেশন সরবরাহ করে। |
Boilerplate Code | XML বা Java Config প্রয়োজন। | সরাসরি application.properties ফাইল ব্যবহার। |
নির্ভরশীলতা | স্পেসিফিক লাইব্রেরি ডিপেন্ডেন্সি যোগ করতে হয়। | Starter প্যাকেজ দিয়ে প্রয়োজনীয় ডিপেন্ডেন্সি ইনক্লুড। |
সহজতা | কিছুটা জটিল। | অনেক বেশি সহজ এবং দ্রুত। |
Spring Framework এবং Spring Boot উভয়ই JDBC কনফিগারেশনে কার্যকর, তবে Spring Boot স্বয়ংক্রিয় কনফিগারেশন এবং সরলীকৃত ডেটাবেস ইন্টিগ্রেশনের জন্য আরও বেশি উপযোগী। ছোট বা দ্রুত ডেভেলপমেন্টের ক্ষেত্রে Spring Boot সেরা, কিন্তু বড় এবং কাস্টমাইজড প্রোজেক্টের জন্য Spring Framework ব্যবহার করা যেতে পারে।
Read more